ν μΌμλ CSSμ Just-in-Time(JIT) μ»΄νμΌ λ° λ°νμ μμ±μ λν΄ μμ보μΈμ. μ₯μ , ꡬν λ°©λ², κ·Έλ¦¬κ³ μΉ κ°λ° μν¬νλ‘μ°μ λ―ΈμΉλ μν₯μ μ΄ν΄ν μ μμ΅λλ€.
ν μΌμλ CSS λ°νμ μμ±: Just-in-Time μ»΄νμΌ
ν μΌμλ CSSλ μΉ κ°λ°μμ μ€νμΌλ§ μ κ·Ό λ°©μμ νλͺ μ μΌμΌμΌ°μ΅λλ€. μ νΈλ¦¬ν° μ°μ μ κ·Ό λ°©μμ κ°λ°μκ° μ΅μνμ 컀μ€ν CSSλ‘ λ³΅μ‘ν μ¬μ©μ μΈν°νμ΄μ€λ₯Ό ꡬμΆν μ μκ² ν΄μ€λλ€. νμ§λ§ κΈ°μ‘΄μ ν μΌμλ νλ‘μ νΈλ μ νΈλ¦¬ν°μ μΌλΆλ§ μ¬μ©νλλΌλ μ’ μ’ ν° CSS νμΌμ μμ±ν μ μμ΅λλ€. λ°λ‘ μ΄ μ§μ μμ Just-in-Time(JIT) μ»΄νμΌ, μ¦ λ°νμ μμ±μ΄ λ±μ₯νμ¬ μλΉν μ±λ₯ ν₯μκ³Ό κ°μνλ κ°λ° κ²½νμ μ 곡ν©λλ€.
Just-in-Time (JIT) μ»΄νμΌμ΄λ 무μμΈκ°?
ν μΌμλ CSSμ λ§₯λ½μμ Just-in-Time(JIT) μ»΄νμΌμ κ°λ° λ° λΉλ κ³Όμ μμ νμν λλ§ CSS μ€νμΌμ μμ±νλ νλ‘μΈμ€λ₯Ό μλ―Έν©λλ€. μ 체 ν μΌμλ CSS λΌμ΄λΈλ¬λ¦¬λ₯Ό 미리 μμ±νλ λμ , JIT μμ§μ νλ‘μ νΈμ HTML, JavaScript λ° κΈ°ν ν νλ¦Ώ νμΌμ λΆμνμ¬ μ€μ λ‘ μ¬μ©λ CSS ν΄λμ€λ§ μμ±ν©λλ€. μ΄λ ν¨μ¬ μμ CSS νμΌ, λ λΉ λ₯Έ λΉλ μκ°, κ·Έλ¦¬κ³ κ°μ λ κ°λ° μν¬νλ‘μ°λ‘ μ΄μ΄μ§λλ€.
κΈ°μ‘΄ ν μΌμλ CSSμ JIT λΉκ΅
κΈ°μ‘΄μ ν μΌμλ CSS μν¬νλ‘μ°μμλ μ 체 CSS λΌμ΄λΈλ¬λ¦¬(μΌλ°μ μΌλ‘ μ λ©κ°λ°μ΄νΈ)κ° λΉλ κ³Όμ μμ μμ±λ©λλ€. μ΄ λΌμ΄λΈλ¬λ¦¬λ ν΄λμ€μ μμ μΌλΆλ§ μ€μ λ‘ μ¬μ©λλλΌλ νλ‘μ νΈμ CSS νμΌμ ν¬ν¨λ©λλ€. μ΄λ λ€μκ³Ό κ°μ λ¬Έμ λ₯Ό μΌκΈ°ν μ μμ΅λλ€.
- ν° CSS νμΌ ν¬κΈ°: μΉμ¬μ΄νΈ λ‘λ© μκ°μ΄ μ¦κ°νμ¬ νΉν λͺ¨λ°μΌ κΈ°κΈ°μμ μ¬μ©μ κ²½νμ μν₯μ λ―ΈμΉ©λλ€.
- λλ¦° λΉλ μκ°: κ°λ° λ° λ°°ν¬ μ€ μ»΄νμΌ μκ°μ΄ κΈΈμ΄μ Έ μμ°μ±μ μ ν΄ν©λλ€.
- λΆνμν μ€λ²ν€λ: μ¬μ©λμ§ μλ CSS ν΄λμ€λ₯Ό ν¬ν¨νλ©΄ 볡μ‘μ±μ΄ μ¦κ°νκ³ λ€λ₯Έ μ€νμΌκ³Ό μ μ¬μ μΌλ‘ μΆ©λν μ μμ΅λλ€.
JIT μ»΄νμΌμ λ€μκ³Ό κ°μ λ°©λ²μΌλ‘ μ΄λ¬ν λ¬Έμ λ€μ ν΄κ²°ν©λλ€.
- μ¬μ©λ CSSλ§ μμ±: CSS νμΌ ν¬κΈ°λ₯Ό 90% μ΄μ κ·Ήμ μΌλ‘ μ€μ λλ€.
- μλΉν λΉ λ₯Έ λΉλ μκ°: κ°λ° λ° λ°°ν¬ νλ‘μΈμ€λ₯Ό κ°μνν©λλ€.
- μ¬μ©λμ§ μλ CSS μ κ±°: 볡μ‘μ±μ μ€μ΄κ³ μ λ°μ μΈ μ±λ₯μ ν₯μμν΅λλ€.
ν μΌμλ CSS JITμ μ₯μ
ν μΌμλ CSS JIT μ»΄νμΌμ μ±ννλ©΄ λͺ¨λ κ·λͺ¨μ κ°λ°μμ νλ‘μ νΈμ μλ§μ μ΄μ μ μ 곡ν©λλ€.
1. CSS νμΌ ν¬κΈ° κ°μ
μ΄λ JIT μ»΄νμΌμ κ°μ₯ μ€μν μ₯μ μ λλ€. νλ‘μ νΈμμ μ¬μ©λ CSS ν΄λμ€λ§ μμ±ν¨μΌλ‘μ¨ κ²°κ³Όμ μΈ CSS νμΌ ν¬κΈ°κ° κ·Ήμ μΌλ‘ μ€μ΄λλλ€. μ΄λ μΉμ¬μ΄νΈμ λ‘λ© μκ° λ¨μΆ, μ¬μ©μ κ²½ν κ°μ , κ·Έλ¦¬κ³ λμν μλΉ κ°μλ‘ μ΄μ΄μ§λλ€.
μμ: μ 체 CSS λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ μΌλ°μ μΈ ν μΌμλ νλ‘μ νΈμ CSS νμΌ ν¬κΈ°λ 3MB μ΄μμΌ μ μμ΅λλ€. JITλ₯Ό μ¬μ©νλ©΄ λμΌν νλ‘μ νΈμ CSS νμΌ ν¬κΈ°κ° 300KB μ΄νκ° λ μ μμ΅λλ€.
2. λ λΉ λ₯Έ λΉλ μκ°
μ 체 ν μΌμλ CSS λΌμ΄λΈλ¬λ¦¬λ₯Ό μμ±νλ κ²μ μκ°μ΄ λ§μ΄ 걸리λ κ³Όμ μΌ μ μμ΅λλ€. JIT μ»΄νμΌμ νμν CSS ν΄λμ€λ§ μμ±νμ¬ λΉλ μκ°μ ν¬κ² λ¨μΆν©λλ€. μ΄λ κ°λ° λ° λ°°ν¬ μν¬νλ‘μ°λ₯Ό κ°μννμ¬ κ°λ°μκ° λ λΉ λ₯΄κ² λ°λ³΅νκ³ νλ‘μ νΈλ₯Ό λ 빨리 μμ₯μ μΆμν μ μκ² ν©λλ€.
μμ: μ΄μ μ μ 체 ν μΌμλ CSS λΌμ΄λΈλ¬λ¦¬λ‘ 30μ΄ κ±Έλ¦¬λ λΉλ νλ‘μΈμ€κ° JITλ₯Ό μ¬μ©νλ©΄ 5μ΄ λ§μ μλ£λ μ μμ΅λλ€.
3. μ¨λ맨λ μ€νμΌ μμ±
JIT μ»΄νμΌμ μ¨λ맨λ(on-demand) μ€νμΌ μμ±μ κ°λ₯νκ² ν©λλ€. μ¦, κ΅¬μ± νμΌμ λͺ μμ μΌλ‘ ν¬ν¨λμ§ μμ ν μΌμλ CSS ν΄λμ€λΌλ νλ‘μ νΈμμ μ¬μ©ν μ μμ΅λλ€. JIT μμ§μ νμμ λ°λΌ ν΄λΉ CSS μ€νμΌμ μλμΌλ‘ μμ±ν©λλ€.
μμ: λ°°κ²½μ μ¬μ©μ μ μ μμ κ°μ μ¬μ©νκ³ μΆλ€κ³ κ°μ ν΄ λ΄ μλ€. JITλ₯Ό μ¬μ©νλ©΄ `tailwind.config.js` νμΌμ 미리 μ μν νμ μμ΄ HTMLμ μ§μ `bg-[#f0f0f0]`μ μΆκ°ν μ μμ΅λλ€. μ΄λ¬ν μ μ°μ±μ νλ‘ν νμ΄νκ³Ό μ€ν μλλ₯Ό ν¬κ² ν₯μμν΅λλ€.
4. μμ κ° μ§μ
μ¨λ맨λ μ€νμΌ μμ±κ³Ό κ΄λ ¨νμ¬, JIT μ»΄νμΌμ μμ κ°(arbitrary values)μ μλ²½νκ² μ§μν©λλ€. μ΄λ₯Ό ν΅ν΄ κ΅¬μ± νμΌμ μ μν νμ μμ΄ λͺ¨λ μμ±μ λν΄ μ ν¨ν CSS κ°μ μ¬μ©ν μ μμ΅λλ€. μ΄λ λμ κ°μ΄λ μ¬μ©μ μ μ λμμΈ μꡬ μ¬νμ μ²λ¦¬ν λ νΉν μ μ©ν©λλ€.
μμ: μ νλ κ°κ²© κ° μΈνΈλ₯Ό 미리 μ μνλ λμ , νΉμ μμμ λν΄ `mt-[17px]` λλ `p-[3.5rem]`μ μ§μ μ¬μ©νμ¬ μ€νμΌλ§μ μ λ°νκ² μ μ΄ν μ μμ΅λλ€.
5. κ°μ λ κ°λ° μν¬νλ‘μ°
κ°μλ CSS νμΌ ν¬κΈ°, λ λΉ λ₯Έ λΉλ μκ°, κ·Έλ¦¬κ³ μ¨λ맨λ μ€νμΌ μμ±μ μ‘°ν©μ κ°λ° μν¬νλ‘μ°λ₯Ό ν¬κ² κ°μ ν©λλ€. κ°λ°μλ λ λΉ λ₯΄κ² λ°λ³΅νκ³ , λ μμ λ‘κ² μ€ννλ©°, νλ‘μ νΈλ₯Ό λ 빨리 μμ₯μ μΆμν μ μμ΅λλ€. κ΅¬μ± νμΌμ μμ νλ λ²κ±°λ‘μ μμ΄ μ μνκ² νλ‘ν νμ μ λ§λ€κ³ μ€νν μ μλ λ₯λ ₯μ λμμΈ νλ‘μΈμ€λ₯Ό νμ νκ² κ°μνν©λλ€.
6. μ΄κΈ° λ‘λ© μκ° λ¨μΆ
λ μμ CSS νμΌμ μΉμ¬μ΄νΈμ μ΄κΈ° λ‘λ© μκ° λ¨μΆμΌλ‘ μ§μ μ΄μ΄μ§λλ€. μ΄λ νΉν λͺ¨λ°μΌ κΈ°κΈ°μ λμνμ΄ μ νλ μ§μμμ μ¬μ©μ κ²½νμ λ§€μ° μ€μν©λλ€. λ λΉ λ₯Έ λ‘λ© μκ°μ μ΄νλ₯ κ°μμ μ νμ¨ μ¦κ°λ‘ μ΄μ΄μ§λλ€.
7. λ λμ μ±λ₯ μ μ
ꡬκΈκ³Ό κ°μ κ²μ μμ§μ λ‘λ© μκ°μ΄ λΉ λ₯Έ μΉμ¬μ΄νΈλ₯Ό μ°μ μν©λλ€. JIT μ»΄νμΌμ CSS νμΌ ν¬κΈ°λ₯Ό μ€μ΄κ³ μ λ°μ μΈ μ±λ₯μ κ°μ ν¨μΌλ‘μ¨ λ λμ μ±λ₯ μ μλ₯Ό λ¬μ±νλ λ° λμμ μ£Όμ΄ κ²μ μμ§ μμ ν₯μμΌλ‘ μ΄μ΄μ§ μ μμ΅λλ€.
ν μΌμλ CSS JIT ꡬννκΈ°
ν μΌμλ CSS JITλ₯Ό ꡬννλ κ²μ λΉκ΅μ κ°λ¨ν©λλ€. ꡬ체μ μΈ λ¨κ³λ νλ‘μ νΈ μ€μ μ λ°λΌ μ½κ° λ€λ₯Ό μ μμ§λ§, μΌλ°μ μΈ νλ‘μΈμ€λ λ€μκ³Ό κ°μ΅λλ€.
1. μ€μΉ
Node.jsμ npm(Node Package Manager)μ΄ μ€μΉλμ΄ μλμ§ νμΈν©λλ€. κ·Έλ° λ€μ ν μΌμλ CSS, PostCSS, Autoprefixerλ₯Ό κ°λ° μμ‘΄μ±(development dependencies)μΌλ‘ μ€μΉν©λλ€.
npm install -D tailwindcss postcss autoprefixer
2. ꡬμ±
νλ‘μ νΈ λ£¨νΈμ `tailwind.config.js` νμΌμ΄ μλ€λ©΄ μμ±ν©λλ€. ν μΌμλ CLIλ₯Ό μ¬μ©νμ¬ μ΄κΈ°νν©λλ€.
npx tailwindcss init -p
μ΄ λͺ λ Ήμ΄λ `tailwind.config.js`μ `postcss.config.js`λ₯Ό λͺ¨λ μμ±ν©λλ€.
3. ν νλ¦Ώ κ²½λ‘ κ΅¬μ±
`tailwind.config.js` νμΌ λ΄μμ `content` λ°°μ΄μ ꡬμ±νμ¬ ν μΌμλ CSSκ° ν΄λμ€ μ΄λ¦μ μ€μΊν νμΌμ μ§μ ν©λλ€. μ΄κ²μ JIT μμ§μ΄ μ¬λ°λ₯΄κ² μλνλ λ° λ§€μ° μ€μν©λλ€.
module.exports = {
content: [
"./src/**/*.{html,js,ts,jsx,tsx}",
"./public/**/*.html",
],
theme: {
extend: {},
},
plugins: [],
}
μ΄ μμλ ν μΌμλκ° `src` λλ ν 리 λ΄μ λͺ¨λ HTML, JavaScript, TypeScript, JSX, TSX νμΌκ³Ό `public` λλ ν 리 λ΄μ λͺ¨λ HTML νμΌμ μ€μΊνλλ‘ κ΅¬μ±ν©λλ€. νλ‘μ νΈ κ΅¬μ‘°μ λ§κ² μ΄ κ²½λ‘λ€μ μ‘°μ νμΈμ.
4. CSSμ ν μΌμλ μ§μμ΄ ν¬ν¨
CSS νμΌ(μ: `src/index.css`)μ λ§λ€κ³ ν μΌμλ μ§μμ΄λ₯Ό ν¬ν¨ν©λλ€.
@tailwind base;
@tailwind components;
@tailwind utilities;
5. PostCSS ꡬμ±
`postcss.config.js` νμΌμ ν μΌμλ CSSμ Autoprefixerκ° ν¬ν¨λμ΄ μλμ§ νμΈν©λλ€.
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}
6. μ ν리μΌμ΄μ μ CSS ν¬ν¨
CSS νμΌ(μ: `src/index.css`)μ λ©μΈ JavaScript λλ TypeScript νμΌ(μ: `src/index.js` λλ `src/index.tsx`)λ‘ κ°μ Έμ΅λλ€.
7. λΉλ νλ‘μΈμ€ μ€ν
μ νΈνλ λΉλ λꡬ(μ: Webpack, Parcel, Vite)λ₯Ό μ¬μ©νμ¬ λΉλ νλ‘μΈμ€λ₯Ό μ€νν©λλ€. μ΄μ ν μΌμλ CSSλ JIT μ»΄νμΌμ μ¬μ©νμ¬ νμν CSS ν΄λμ€λ§ μμ±ν©λλ€.
Vite μ¬μ© μμ:
`package.json`μ λ€μ μ€ν¬λ¦½νΈλ₯Ό μΆκ°ν©λλ€.
"scripts": {
"dev": "vite",
"build": "vite build",
"serve": "vite preview"
}
κ·Έλ° λ€μ `npm run dev`λ₯Ό μ€ννμ¬ κ°λ° μλ²λ₯Ό μμν©λλ€. Viteλ PostCSSμ JITκ° νμ±νλ ν μΌμλ CSSλ₯Ό μ¬μ©νμ¬ CSSλ₯Ό μλμΌλ‘ μ²λ¦¬ν©λλ€.
λ¬Έμ ν΄κ²° λ° μΌλ°μ μΈ λ¬Έμ
ν μΌμλ CSS JIT ꡬνμ μΌλ°μ μΌλ‘ κ°λ¨νμ§λ§ λͺ κ°μ§ μΌλ°μ μΈ λ¬Έμ μ μ§λ©΄ν μ μμ΅λλ€.
1. ν΄λμ€ μ΄λ¦μ΄ μμ±λμ§ μλ κ²½μ°
νΉμ CSS ν΄λμ€κ° μμ±λμ§ μλ κ²μ λ°κ²¬νλ©΄ `tailwind.config.js` νμΌμ λ€μ νμΈνμΈμ. `content` λ°°μ΄μ ν μΌμλ CSS ν΄λμ€λ₯Ό μ¬μ©νλ λͺ¨λ νμΌμ΄ ν¬ν¨λμ΄ μλμ§ νμΈν©λλ€. νμΌ νμ₯μμ κ²½λ‘μ νΉν μ£ΌμνμΈμ.
2. μΊμ± λ¬Έμ
κ²½μ°μ λ°λΌ μΊμ± λ¬Έμ λ‘ μΈν΄ JIT μμ§μ΄ μ¬λ°λ₯Έ CSSλ₯Ό μμ±νμ§ λͺ»ν μ μμ΅λλ€. λΈλΌμ°μ μΊμλ₯Ό μ§μ°κ³ λΉλ νλ‘μΈμ€λ₯Ό λ€μ μμν΄ λ³΄μΈμ.
3. μλͺ»λ PostCSS ꡬμ±
`postcss.config.js` νμΌμ΄ μ¬λ°λ₯΄κ² ꡬμ±λμ΄ μκ³ ν μΌμλ CSSμ Autoprefixerλ₯Ό ν¬ν¨νκ³ μλμ§ νμΈνμΈμ. λν μ΄ ν¨ν€μ§λ€μ λ²μ μ΄ νΈνλλμ§ νμΈνμΈμ.
4. PurgeCSS ꡬμ±
JIT μ»΄νμΌκ³Ό ν¨κ» PurgeCSSλ₯Ό μ¬μ©νλ κ²½μ°(μΌλ°μ μΌλ‘ νμνμ§ μμ§λ§ νλ‘λμ μμ μΆκ° μ΅μ νλ₯Ό μν΄ μ¬μ©ν μ μμ), νμν CSS ν΄λμ€κ° μ κ±°λμ§ μλλ‘ PurgeCSSκ° μ¬λ°λ₯΄κ² ꡬμ±λμλμ§ νμΈνμΈμ. νμ§λ§ JITλ₯Ό μ¬μ©νλ©΄ PurgeCSSμ νμμ±μ ν¬κ² μ€μ΄λλλ€.
5. λμ ν΄λμ€ μ΄λ¦
λμ ν΄λμ€ μ΄λ¦(μ: μ¬μ©μ μ λ ₯μ κΈ°λ°μΌλ‘ ν΄λμ€ μ΄λ¦ μμ±)μ μ¬μ©νλ κ²½μ°, ν΄λΉ ν΄λμ€κ° νμ μμ±λ CSSμ ν¬ν¨λλλ‘ `tailwind.config.js` νμΌμ `safelist` μ΅μ μ μ¬μ©ν΄μΌ ν μ μμ΅λλ€. νμ§λ§ JITμ ν¨κ» μμ κ°μ μ¬μ©νλ©΄ `safelist`μ νμμ±μ΄ μ’ μ’ μ¬λΌμ§λλ€.
ν μΌμλ CSS JIT μ¬μ©μ μν λͺ¨λ² μ¬λ‘
ν μΌμλ CSS JITλ₯Ό μ΅λν νμ©νλ €λ©΄ λ€μ λͺ¨λ² μ¬λ‘λ₯Ό κ³ λ €νμΈμ.
1. ν νλ¦Ώ κ²½λ‘λ₯Ό μ ννκ² κ΅¬μ±
`tailwind.config.js` νμΌμ΄ λͺ¨λ ν νλ¦Ώ νμΌμ μμΉλ₯Ό μ ννκ² λ°μνλλ‘ νμΈμ. μ΄λ JIT μμ§μ΄ νλ‘μ νΈμμ μ¬μ©λλ CSS ν΄λμ€λ₯Ό μ¬λ°λ₯΄κ² μλ³νλ λ° λ§€μ° μ€μν©λλ€.
2. μλ―Έ μλ ν΄λμ€ μ΄λ¦ μ¬μ©
ν μΌμλ CSSλ μ νΈλ¦¬ν° ν΄λμ€ μ¬μ©μ κΆμ₯νμ§λ§, μμμ λͺ©μ μ μ ννκ² μ€λͺ νλ μλ―Έ μλ ν΄λμ€ μ΄λ¦μ μ¬μ©νλ κ²μ΄ μ¬μ ν μ€μν©λλ€. μ΄λ μ½λλ₯Ό λ μ½κΈ° μ½κ³ μ μ§λ³΄μνκΈ° μ½κ² λ§λλλ€.
3. μ μ ν λ μ»΄ν¬λνΈ μΆμΆ μ¬μ©
볡μ‘ν UI μμμ κ²½μ°, ν μΌμλ CSS ν΄λμ€λ₯Ό μ¬μ¬μ© κ°λ₯ν μ»΄ν¬λνΈλ‘ μΆμΆνλ κ²μ κ³ λ €νμΈμ. μ΄λ μ€λ³΅μ μ€μ΄κ³ μ½λ ꡬμ±μ κ°μ νλ λ° λμμ΄ λ©λλ€. μ΄λ₯Ό μν΄ `@apply` μ§μμ΄λ₯Ό μ¬μ©νκ±°λ, μ νΈνλ μν¬νλ‘μ°λΌλ©΄ CSSμμ μ€μ μ»΄ν¬λνΈ ν΄λμ€λ₯Ό μμ±ν μ μμ΅λλ€.
4. μμ κ° νμ©
μ€νμΌλ§μ λ―ΈμΈ μ‘°μ νκΈ° μν΄ μμ κ°μ μ¬μ©νλ κ²μ λλ €μνμ§ λ§μΈμ. μ΄λ λμ κ°μ΄λ μ¬μ©μ μ μ λμμΈ μꡬ μ¬νμ μ²λ¦¬ν λ νΉν μ μ©ν μ μμ΅λλ€.
5. νλ‘λμ μ μν μ΅μ ν
JIT μ»΄νμΌμ΄ CSS νμΌ ν¬κΈ°λ₯Ό ν¬κ² μ€μ΄μ§λ§, νλ‘λμ μ μν΄ CSSλ₯Ό μ΅μ ννλ κ²μ μ¬μ ν μ€μν©λλ€. νμΌ ν¬κΈ°λ₯Ό λμ± μ€μ΄κ³ μ±λ₯μ ν₯μμν€κΈ° μν΄ CSS μΆμκΈ°(minifier) μ¬μ©μ κ³ λ €νμΈμ. JITλ₯Ό μ¬μ©νλ©΄ μΌλ°μ μΌλ‘ μ΅μνλμ§λ§, λΉλ νλ‘μΈμ€λ₯Ό ꡬμ±νμ¬ μ¬μ©λμ§ μλ CSS ν΄λμ€λ₯Ό μ κ±°ν μλ μμ΅λλ€.
6. λΈλΌμ°μ νΈνμ± κ³ λ €
νλ‘μ νΈκ° λμ λΈλΌμ°μ μ νΈνλλμ§ νμΈνμΈμ. Autoprefixerλ₯Ό μ¬μ©νμ¬ μ΄μ λΈλΌμ°μ μ λν λ²€λ μ λμ¬(vendor prefixes)λ₯Ό μλμΌλ‘ μΆκ°νμΈμ.
μ€μ ν μΌμλ CSS JIT μ μ© μ¬λ‘
ν μΌμλ CSS JITλ μκ·λͺ¨ κ°μΈ μΉμ¬μ΄νΈλΆν° λκ·λͺ¨ κΈ°μ μ ν리μΌμ΄μ μ μ΄λ₯΄κΈ°κΉμ§ κ΄λ²μν νλ‘μ νΈμμ μ±κ³΅μ μΌλ‘ ꡬνλμμ΅λλ€. λͺ κ°μ§ μ€μ μ¬λ‘λ λ€μκ³Ό κ°μ΅λλ€.
1. μ μμκ±°λ μΉμ¬μ΄νΈ
ν μ μμκ±°λ μΉμ¬μ΄νΈλ ν μΌμλ CSS JITλ₯Ό μ¬μ©νμ¬ CSS νμΌ ν¬κΈ°λ₯Ό 85% μ€μκ³ , κ·Έ κ²°κ³Ό νμ΄μ§ λ‘λ μκ°μ΄ ν¬κ² κ°μ λκ³ μ¬μ©μ κ²½νμ΄ ν₯μλμμ΅λλ€. λ‘λ μκ° λ¨μΆμ μ νμ¨μ λμ λλ μ¦κ°λ‘ μ΄μ΄μ‘μ΅λλ€.
2. SaaS μ ν리μΌμ΄μ
ν SaaS μ ν리μΌμ΄μ μ λΉλ νλ‘μΈμ€λ₯Ό κ°μννκ³ κ°λ°μ μμ°μ±μ ν₯μμν€κΈ° μν΄ ν μΌμλ CSS JITλ₯Ό ꡬννμ΅λλ€. λ λΉ¨λΌμ§ λΉλ μκ° λλΆμ κ°λ°μλ€μ λ λΉ λ₯΄κ² λ°λ³΅νκ³ μλ‘μ΄ κΈ°λ₯μ λ μ μνκ² μΆμν μ μμμ΅λλ€.
3. ν¬νΈν΄λ¦¬μ€ μΉμ¬μ΄νΈ
ν ν¬νΈν΄λ¦¬μ€ μΉμ¬μ΄νΈλ ν μΌμλ CSS JITλ₯Ό μ¬μ©νμ¬ κ°λ³κ³ μ±λ₯μ΄ λ°μ΄λ μΉμ¬μ΄νΈλ₯Ό λ§λ€μμ΅λλ€. κ°μλ CSS νμΌ ν¬κΈ°λ μΉμ¬μ΄νΈμ κ²μ μμ§ μμλ₯Ό λμ΄λ λ° λμμ΄ λμμ΅λλ€.
4. λͺ¨λ°μΌ μ± κ°λ° (React Nativeμ κ°μ νλ μμν¬μ ν¨κ»)
ν μΌμλλ μ£Όλ‘ μΉ κ°λ°μ μν κ²μ΄μ§λ§, `tailwind-rn`κ³Ό κ°μ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νμ¬ React Nativeμ κ°μ νλ μμν¬λ₯Ό μ΄μ©ν λͺ¨λ°μΌ μ± κ°λ°μλ κ·Έ μμΉμ μ μ©ν μ μμ΅λλ€. ꡬν μΈλΆ μ¬νμ λ€λ₯΄λλΌλ JIT μ»΄νμΌ μμΉμ μ¬μ ν μ ν¨ν©λλ€. μ΄μ μ μ ν리μΌμ΄μ μ νμν μ€νμΌλ§ μμ±νλ λ° μμ΅λλ€.
ν μΌμλ CSS JITμ λ―Έλ
ν μΌμλ CSS JITλ μΉ νλ‘μ νΈμ μ±λ₯κ³Ό κ°λ° μν¬νλ‘μ°λ₯Ό ν¬κ² ν₯μμν¬ μ μλ κ°λ ₯ν λꡬμ λλ€. μΉ κ°λ° νκ²½μ΄ κ³μ μ§νν¨μ λ°λΌ JIT μ»΄νμΌμ ν μΌμλ CSS μνκ³μμ μ μ λ μ€μν λΆλΆμ΄ λ κ²μ λλ€. ν₯ν κ°λ°μλ ν¨μ¬ λ μ§λ³΄λ μ΅μ ν κΈ°μ κ³Ό λ€λ₯Έ λΉλ λꡬ λ° νλ μμν¬μμ κΈ΄λ°ν ν΅ν©μ΄ ν¬ν¨λ μ μμ΅λλ€. μ±λ₯, κΈ°λ₯ λ° μ¬μ© νΈμμ±μμ μ§μμ μΈ κ°μ μ κΈ°λν μ μμ΅λλ€.
κ²°λ‘
ν μΌμλ CSSμ Just-in-Time(JIT) μ»΄νμΌμ μΉ κ°λ°μλ€μκ² κ²μ 체μΈμ μ λλ€. μ΄λ ν° CSS νμΌ ν¬κΈ°μ λλ¦° λΉλ μκ°μ΄λΌλ λ¬Έμ μ λν κ°λ ₯ν ν΄κ²°μ± μ μ 곡ν©λλ€. νλ‘μ νΈμ νμν CSS ν΄λμ€λ§ μμ±ν¨μΌλ‘μ¨ JIT μ»΄νμΌμ μλΉν μ±λ₯ μ΄μ μ μ 곡νκ³ , κ°λ°μ μμ°μ±μ ν₯μμν€λ©°, μ λ°μ μΈ μ¬μ©μ κ²½νμ ν₯μμν΅λλ€. ν μΌμλ CSSλ₯Ό μ¬μ©νκ³ μλ€λ©΄, μν¬νλ‘μ°λ₯Ό μ΅μ ννκ³ μ΅κ³ μ μ±λ₯μ λ¬μ±νκΈ° μν΄ JIT μ»΄νμΌμ μ±ννλ κ²μ νμμ λλ€. JITλ₯Ό μμ©νλ κ²μ ν μΌμλ CSSκ° μ 곡νλ μ μ°μ±κ³Ό μ νΈλ¦¬ν° μ°μ μ κ·Ό λ°©μμΌλ‘ νλμ μ΄κ³ μ±λ₯μ΄ λ°μ΄λ μΉ μ ν리μΌμ΄μ μ ꡬμΆνλ κ°λ ₯ν λ°©λ²μ μ 곡ν©λλ€. μ§μ²΄νμ§ λ§κ³ μ€λ λ°λ‘ νλ‘μ νΈμ JITλ₯Ό ν΅ν©νμ¬ κ·Έ μ°¨μ΄λ₯Ό κ²½νν΄ λ³΄μΈμ!